package com.fishingwithme.domain.credit;

import com.fishingwithme.infrastructure.dtos.credit.CreditAvailableDto;
import com.fishingwithme.infrastructure.dtos.credit.UserCreditDto;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

public interface CreditService {
    IPage<CreditRecord> list(Integer pageNum, Integer pageSize, Long userId);

    void addUserRecord(Long userId);


    UserCreditDto get(Long userId);

    Boolean skipAds(Boolean skipAds, Long userId);

    List<CreditLevelRule> getCreditLvls(Long userId);

    IPage<CreditRule> getCreditRules(Integer pageNum, Integer pageSize, Long userId);

    void dailyMark(Long userId);

    Integer transferPrivateSpotCredit(Long fromUserId, Long toUserId, Integer transferVal);

    void rewardSpotCreateCredit(Long userId);

    void rewardHarvestShowCredit(Long userId);

    CreditAvailableDto isCreditAvailableForCollect(Long spotId);

    Boolean setCredit(Long spotId, Integer credit);
}
